package cn.px.service.check;

import cn.px.common.bean.AbstractPageResultBean;
import cn.px.dao.dto.check.CheckJobDTO;
import cn.px.dao.dto.check.CheckStandardDTO;
import cn.px.dao.entity.check.CheckStandard;
import cn.px.dao.vo.query.check.CheckStandardSpareVO;
import cn.px.dao.vo.query.check.CheckStandardVO;
import cn.px.service.base.IBaseService;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

/**
 * @Description 点检标准 service
 * @author 品讯科技
 * @date 2024-08
 * @Version Copyright (c) 2020,北京乾元坤和科技有限公司 All rights reserved.
 */
public interface CheckStandardService extends IBaseService<CheckStandard, CheckStandardDTO> {
    /**
     * 级联删除
     * 删除出库单与出库详情，同时要更新库存
     *
     * @param id ：
     * @return ：
     */
    boolean cascadingDeleteByKey(String id);
   /**
    * 批量删除
    *
    * @param ids ：
    * @return ：
    */
    int batchDelete(List<String> ids);

    List<CheckStandardVO> selectList( CheckStandardDTO record);

    List<CheckStandardVO> selectCheckstandardListByModelId(String modelId);

    List<CheckStandardVO> selectProjectStandardList(String projectId);

    /**
     * 生成某一個保养标准的保养任务
     *
     * @param checkJobDTO
     */
    public void generate(CheckJobDTO checkJobDTO);

    String copyFormSb(CheckStandardDTO model);

    String importListByAdd(MultipartFile file);

    String importListByUpdate(MultipartFile file);

    String importListByAddOldVersion(MultipartFile file);

    String importList(MultipartFile file) throws IOException, InvalidFormatException, Exception;

    void genSpareWarnTask(int month, int type);
    void updateBatch(List<CheckStandard> updateStandardList);
    /**
     * 分页查询
     * @param month      :
     * @param type      :
     * @param pageNum  :
     * @param pageSize :
     * @return :
     */
    AbstractPageResultBean<CheckStandardSpareVO> selectSpareWarnVOPage(int month, int type, int pageNum, int pageSize);
}
